www.gusucode.com > DB-Libray 操作SQLServer编程的VC++ 一例-源码程序 > DB-Libray 操作SQLServer编程的VC++ 一例-源码程序\code\PhManage\MenuTreeView.cpp
//Download by http://www.NewXing.com // MenuTreeView.cpp : implementation file // #include "stdafx.h" #include "PhysicM.h" #include "MenuTreeView.h" #include "LogView.h" #include "mainfrm.h" #include "ProviderDlg.h" #include "PhysicSetDlg.h" #include "PhysicRatedlg.h" #include "dutyinfodlg.h" #include "salesmandlg.h" #include "hospitaldlg.h" #include "officedlg.h" #include "DoctorDlg.h" #include "QueryDlg.h" #include "SaleRecordMDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif /// static char *BaseInfoSetMenu[]={"厂家设置","药品信息设置","药品费用设置","职务设置","业务人员信息设置","医院设置","科室设置","医生设置",NULL}; static char *OperateMenu[]={"销售记录查询统计","销售记录维护",NULL}; ///////////////////////////////////////////////////////////////////////////// // CMenuTreeView IMPLEMENT_DYNCREATE(CMenuTreeView, CTreeView) CMenuTreeView::CMenuTreeView() { //for (int i=0;i<10;i++) memset(fpt,0,sizeof(fpt)); fpt[0]=ProviderInfo; fpt[1]=PhysicInfoSet; fpt[2]=PhysicRateInfo; fpt[3]=DutyInfoSet; fpt[4]=SalesManInfo; fpt[5]=HospitalInfo; fpt[6]=OfficeInfo; fpt[7]=DoctorInfo; fpt[8]=QueryCount; fpt[9]=SaleRecordM; } CMenuTreeView::~CMenuTreeView() { if (pImage) delete pImage; } BEGIN_MESSAGE_MAP(CMenuTreeView, CTreeView) //{{AFX_MSG_MAP(CMenuTreeView) ON_WM_CREATE() ON_NOTIFY_REFLECT(TVN_SELCHANGED, OnSelchanged) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMenuTreeView drawing void CMenuTreeView::OnDraw(CDC* pDC) { CDocument* pDoc = GetDocument(); // pDC->DrawIcon(10,10,AfxGetApp()->LoadIcon(IDR_MENUVIEW_TMPL)); // TODO: add draw code here } ///////////////////////////////////////////////////////////////////////////// // CMenuTreeView diagnostics #ifdef _DEBUG void CMenuTreeView::AssertValid() const { CTreeView::AssertValid(); } void CMenuTreeView::Dump(CDumpContext& dc) const { CTreeView::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CMenuTreeView message handlers int CMenuTreeView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CTreeView::OnCreate(lpCreateStruct) == -1) return -1; pImage=new CImageList(); ASSERT (pImage !=NULL); pImage->Create(18,18,TRUE | ILC_COLOR32,8,0); pImage->Add(AfxGetApp()->LoadIcon(IDI_ICON8)); pImage->Add(AfxGetApp()->LoadIcon(IDI_ICON2)); pImage->Add(AfxGetApp()->LoadIcon(IDI_ICON3)); pImage->Add(AfxGetApp()->LoadIcon(IDI_ICON1)); pImage->Add(AfxGetApp()->LoadIcon(IDI_ICON4)); pImage->Add(AfxGetApp()->LoadIcon(IDI_ICON5)); pImage->Add(AfxGetApp()->LoadIcon(IDI_ICON6)); pImage->Add(AfxGetApp()->LoadIcon(IDI_ICON7)); pTree = &GetTreeCtrl(); pTree->SetImageList(pImage,TVSIL_NORMAL); HTREEITEM hRoot,hChild; pTree->ModifyStyle(0,TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS ); hRoot=pTree->InsertItem("主菜单",0,0,TVI_ROOT); hChild=pTree->InsertItem("基础信息设置",0,0,hRoot); char **p=BaseInfoSetMenu; int i=0; while(*p!=NULL) { pTree->InsertItem(*p,i,i,hChild); i++; p++; } hChild=pTree->InsertItem("日常管理",0,0,hRoot); for(i=0,p=OperateMenu;*p!=NULL;i++) { pTree->InsertItem(*p,0,0,hChild); p++; } pTree->InsertItem("关于...",0,0,hRoot); pTree->Expand(hRoot,TVE_EXPAND); pTree->SelectItem(NULL); //SetIcon(AfxGetApp()->LoadIcon(IDR_MENUVIEW_TMPL),TRUE); // TODO: Add your specialized creation code here return 0; } void CMenuTreeView::CallFun(CString str) { char **p=BaseInfoSetMenu; int i=0; while(*p!=NULL) { if(str.Compare(*p)==0) { if(fpt[i]) { (this->*fpt[i])(); pTree->SelectItem(NULL); } break; } p++; i++; } if (*p) return;//已经调用 int j=0; p=OperateMenu; while(*p!=NULL) { if(str.Compare(*p)==0) { if(fpt[i+j]) { (this->*fpt[i+j])(); pTree->SelectItem(NULL); } break; } p++; j++; } } void CMenuTreeView::OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult) { NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; HTREEITEM hTreeItem=pTree->GetSelectedItem(); if(hTreeItem==NULL) return; CString ItemText=pTree->GetItemText(hTreeItem); CallFun(ItemText); *pResult = 0; } void CMenuTreeView::ProviderInfo() { CProviderDlg pd; pd.DoModal(); } void CMenuTreeView::PhysicInfoSet() { CPhysicSetDlg pd; pd.DoModal(); } void CMenuTreeView::PhysicRateInfo() { CPhysicRateDlg rd; rd.DoModal(); } void CMenuTreeView::DutyInfoSet() { CDutyInfoDlg dutydlg; dutydlg.DoModal(); } void CMenuTreeView::SalesManInfo() { CSalesManDlg sd; sd.DoModal(); } void CMenuTreeView::HospitalInfo() { CHospitalDlg hd; hd.DoModal(); } void CMenuTreeView::OfficeInfo() { COfficeDlg od; od.DoModal(); } void CMenuTreeView::DoctorInfo() { CDoctorDlg dd; dd.DoModal(); } void CMenuTreeView::QueryCount() { CQueryDlg qd; qd.DoModal(); } void CMenuTreeView::SaleRecordM() { CSaleRecordMDlg sd; sd.DoModal(); }